package thread;

/**
 * 线程的第一种创建方式:
 * 继承Thread并重写run方法
 */
public class ThreadDemo1 {
    public static void main(String[] args) {
           Thread t1 = new MyThread1();
           Thread t2 = new MyThread2();
           //注意，启动线程是调用线程的start方法，而不是直接调用run方法
           t1.start();
           t2.start();
    }
}
/*
    第一种创建线程的方式优点:结构简单，便于使用匿名内部类创建
    缺点:
    1:java是单继承，这会导致出现继承冲突问题
    2:继承Thread需要重写run方法，将任务定义在线程中，这导致线程和任务存在必然的耦合，不利于
      线程的重复使用。
 */
class MyThread1 extends Thread{
    public void run(){
        for (int i = 0; i < 1000; i++) {
            System.out.println("你是谁啊?");
        }
    }
}

class MyThread2 extends Thread{
    public void run(){
        for (int i = 0; i < 1000; i++) {
            System.out.println("开门！查水表的！");
        }
    }
}






